package com.ruoyi.wechat.domain.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.wechat.domain.BaseEntity;
import com.ruoyi.wechat.domain.DelvTag;
import com.ruoyi.wechat.domain.OrderDelv;
import com.ruoyi.wechat.domain.OrderItem;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单对象 app_order
 *
 * @author YinHeng
 * @date 2024-03-08
 */
@Data
public class OrderDTO extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 支付方式：1、微信小程序支付
     */
    private Integer payMethod;

    /**
     * 订单号
     */
    private String tradeNo;
    /**
     * 订单类型
     */
    private Integer type;
    /**
     * 订单类别
     */
    private Integer category;

    /**
     * 服务员ID
     */
    private Long waiterId;

    /**
     * 服务员
     */
    private String waiter;

    /**
     * 服务员
     */
    private String waiterPhone;

    /**
     * 全平台用户id
     */
    private Long accountUserId;

    /**
     * 收件地址ID
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long addrId;
    /**
     * 联系人称呼
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private String addrNick;
    /**
     * 联系方式
     */
    private String addrPhone;
    /**
     * 收件地址详情
     */
    private String addrDetail;
    /**
     * 配送方式id
     */
    private Integer delvMode;
    /**
     * 入户密码
     */
    private String intoPwd;

    /**
     * 订单状态,1:订单创建成功、2：支付成功、3：交易完结
     */
    private Integer status;

    private Integer payStatus;
    /**
     * 配送状态
     */
    private Integer delvStatus;

    /**
     * 订单标识，0：普通订单、1：加急订单
     */
    private Integer tag;

    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;

    /**
     * 实际支付金额
     */
    private BigDecimal realPayAmount;

    /**
     * 预约时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime aptTime;

    /**
     * 附加文件地址
     */
    private String attachFiles;

    /**
     * 附加文件地址列表
     */
    @TableField(exist = false)
    private List<String> attachFileList;

    /**
     * 附加说明
     */
    private String attachText;

    /**
     * 子应用用户id
     */
    private String appUserId;

    /**
     * 是否删除，1：是、0：否
     */
    private Integer isDeleted;

    /**
     * 支付成功时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime payTime;

    /**
     * 发货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime deliverTime;
    /**
     * 接单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime takeTime;
    /**
     * 取件备注
     */
    private String pickRmk;
    /**
     * 取件时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime pickTime;
    /**
     * 送达备注
     */
    private String arriveRmk;
    /**
     * 送达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime arriveTime;
    /**
     * 已耗时
     */
    private String costTime;


    /**
     * 送达照片
     */
    private List<String> arrivePhotoList;

    /**
     * 交易成功时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime successTime;

    /**
     * 交易关闭时间
     */
    private LocalDateTime closeTime;
    /**
     * 商品总数量
     */
    private Integer totalNum;
    /**
     * 所属地区
     */
    private String area;
    /**
     * 所在小区
     */
    private String comy;
    /**
     * 所在楼栋
     */
    private String ridgepole;
    /**
     * 所在单元名称
     */
    private String unit;
    /**
     * 房号
     */
    private String door;
    /**
     * 驿站标签列表
     */
    private List<DelvTag> tagList;
    /**
     * 配送数据
     */
    private List<OrderDelv> delvList;
    /**
     * 子订单集合
     */
    private List<OrderItem> itemList;

}
